package listbyorder.access101_200.test115;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/6/8 8:40
 */
public class Solution1 {

    // 方法一： 定义一个全局变量，一旦t的指针走到尾时，ans加1
    // 超时
    Integer ans = 0;

    public int numDistinct(String s, String t) {
        if (s.length() < t.length()) return 0;
        getAns(s, 0, t, 0);
        return ans;
    }

    private void getAns(String s, int c1, String t, int c2) {
        if (c2 == t.length()) {
            ans++;
            return;
        }
        // 如果s长度不够的直接返回
        if (s.length() - c1 < t.length() - c2) return;
        // 当前位置参与计算
        if (s.charAt(c1) == t.charAt(c2)) {
            getAns(s, c1 + 1, t, c2 + 1);
        }
        // 不管当前是否相等，都做一下当前位不考虑的情况
        getAns(s, c1 + 1, t, c2);
    }

}
